import axios from 'axios';

// 创建 axios 实例
const service = axios.create({
  baseURL: '/api',
  timeout: 60000,
});

// 添加请求拦截器
service.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  console.log('最终请求路径:', config.url);
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
service.interceptors.response.use(function (response) {
  // 2xx 范围内的状态码都会触发该函数。
  // 对响应数据做点什么
  return response;
}, function (error) {
  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么
  return Promise.reject(error);
});

export default function Fajax(config: any) {
  const { url = '', type = 'get',  data = {}, headers = {} } = config
  console.log(config);
  
  if (type.toLowerCase == 'post') {
    if (headers['Content-Type'] == 'application/x-www-form-urlencoded') {
      const obj = new URLSearchParams()
      for (const key in data) {
        obj.append(key, data[key])
      }
      return service.post(url, obj, { headers })
    }

    if (headers['Content-Type'] == 'multipart/form-data') {
      const obj = new FormData()
      for (const key in data) {
        obj.append(key, data[key])
      }
      return service.post(url, obj, { headers })
    }
  }

  if (type == 'get') {
    console.log(222,data);
    
    return service.get(url, { params: data })
  }

  return service.request(config)
}

